home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
676-700
/
681
/
term
/
source.lha
/
RatePanel.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-09
|
19KB
|
697 lines
/*
** $Id: RatePanel.c,v 1.4 92/04/21 16:59:29 olsen Sta Locker: olsen $
** $Revision: 1.4 $
** $Date: 92/04/21 16:59:29 $
**
** Editing panel for phone units configuration
**
** Copyright © 1990-1992 by Olaf `Olsen' Barthel & MXM
** All Rights Reserved
*/
#include "termGlobal.h"
enum { GAD_PAY1,GAD_MINUTES1,GAD_START1,GAD_PAY2,GAD_MINUTES2,GAD_START2,
GAD_LIST,GAD_REMOVE,GAD_CLONE,GAD_ADDDAY,GAD_ADDDATE,GAD_EDIT,
GAD_IMPORT };
#define WIDTH 640
#define HEIGHT 134
STATIC UBYTE * __saveds
ShowTime(struct Gadget *SomeGadget,WORD Level)
{
STATIC UBYTE Buffer[6];
SPrintf(Buffer,"%2ld.%02ld",Level / 60,Level % 60);
return(Buffer);
}
STATIC UBYTE * __saveds
ShowHour(struct Gadget *SomeGadget,WORD Level)
{
STATIC UBYTE Buffer[6];
SPrintf(Buffer,"%2ld:%02ld",Level / 6,(Level % 6) * 10);
return(Buffer);
}
STATIC struct Gadget *
CreateAllGadgets(struct PhoneEntry *Entry,struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
{
struct Gadget *Gadget;
struct NewGadget NewGadget;
UWORD Counter = 0;
memset(&NewGadget,0,sizeof(struct NewGadget));
if(Gadget = CreateContext(GadgetList))
{
NewGadget . ng_LeftEdge = 162;
NewGadget . ng_TopEdge = 27;
NewGadget . ng_Width = 101;
NewGadget . ng_Height = 14;
NewGadget . ng_GadgetText = SmallCurrency();
NewGadget . ng_TextAttr = &DefaultFont;
NewGadget . ng_GadgetID = Counter;
NewGadget . ng_Flags = PLACETEXT_LEFT;
NewGadget . ng_VisualInfo = VisualInfo;
GadgetArray[Counter++] = Gadget = CreateGadget(INTEGER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTIN_MaxChars, 8,
GTST_EditHook, &CommandHook,
GA_Disabled, TRUE,
GA_Immediate, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 42;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_SECONDS_PER_UNIT_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(INTEGER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTIN_MaxChars, 8,
GTST_EditHook, &CommandHook,
GA_Disabled, TRUE,
GA_Immediate, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 57;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_START_TIME_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(SLIDER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTSL_Max, 143,
GTSL_MaxLevelLen, 5,
GTSL_LevelFormat, "%s",
GTSL_DispFunc, ShowHour,
PGA_Freedom, LORIENT_HORIZ,
GA_Immediate, TRUE,
GA_RelVerify, TRUE,
GA_Disabled, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 87;
NewGadget . ng_GadgetText = SmallCurrency();
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(INTEGER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTIN_MaxChars, 8,
GTST_EditHook, &CommandHook,
GA_Disabled, TRUE,
GA_Immediate, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 102;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_SECONDS_PER_UNIT_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(INTEGER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTIN_MaxChars, 8,
GTST_EditHook, &CommandHook,
GA_Disabled, TRUE,
GA_Immediate, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 117;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_START_TIME_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(SLIDER_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTSL_Max, 143,
GTSL_MaxLevelLen, 5,
GTSL_LevelFormat, "%s",
GTSL_DispFunc, ShowHour,
PGA_Freedom, LORIENT_HORIZ,
GA_Immediate, TRUE,
GA_RelVerify, TRUE,
GA_Disabled, TRUE,
TAG_DONE);
NewGadget . ng_LeftEdge = 267;
NewGadget . ng_TopEdge = 27;
NewGadget . ng_Width = 261;
NewGadget . ng_Height = 104;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_DAYS_AND_DATES_GAD);
NewGadget . ng_GadgetID = Counter;
NewGadget . ng_Flags = PLACETEXT_ABOVE|NG_HIGHLABEL;
GadgetArray[Counter++] = Gadget = CreateGadget(LISTVIEW_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GTLV_Labels, &Entry -> TimeDateList,
GTLV_ShowSelected, NULL,
TAG_DONE);
NewGadget . ng_LeftEdge = 532;
NewGadget . ng_TopEdge = 118;
NewGadget . ng_Width = 99;
NewGadget . ng_Height = 13;
NewGadget . ng_GadgetText = LocaleString(MSG_GLOBAL_REMOVE_GAD);
NewGadget . ng_GadgetID = Counter;
NewGadget . ng_Flags = PLACETEXT_IN;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GA_Disabled, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 104;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_CLONE_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GA_Disabled, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 41;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_ADD_DAYS_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
TAG_DONE);
NewGadget . ng_TopEdge = 27;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_ADD_DATE_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
TAG_DONE);
NewGadget . ng_TopEdge = 90;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_EDIT_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GA_Disabled, TRUE,
TAG_DONE);
NewGadget . ng_TopEdge = 55;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_IMPORT_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
GA_Disabled, NumPhoneEntries < 2,
TAG_DONE);
NewGadget . ng_LeftEdge = 84;
NewGadget . ng_TopEdge = 12;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_STARTING_TIME_GAD);
NewGadget . ng_Flags = PLACETEXT_IN|NG_HIGHLABEL;
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(TEXT_KIND,Gadget,&NewGadget,
TAG_DONE);
NewGadget . ng_LeftEdge = 92;
NewGadget . ng_TopEdge = 72;
NewGadget . ng_GadgetText = LocaleString(MSG_RATEPANEL_ENDING_TIME_GAD);
NewGadget . ng_GadgetID = Counter;
GadgetArray[Counter++] = Gadget = CreateGadget(TEXT_KIND,Gadget,&NewGadget,
TAG_DONE);
}
return(Gadget);
}
STATIC VOID __regargs
DisableGadgets(struct Gadget **GadgetArray,struct Window *PanelWindow,BYTE Mode)
{
GT_SetGadgetAttrs(GadgetArray[GAD_PAY1],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES1],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START1],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_PAY2],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES2],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START2],PanelWindow,NULL,
GA_Disabled, Mode,
TAG_DONE);
if(Mode)
ActiveGadget = NULL;
}
STATIC struct Node * __regargs
GetNode(struct List *List,LONG Offset)
{
struct Node *Node;
LONG i;
Node = (struct Node *)List -> lh_Head;
for(i = 0 ; i < Offset ; i++)
{
if(!Node -> ln_Succ -> ln_Succ)
return(NULL);
Node = Node -> ln_Succ;
}
return(Node);
}
VOID
RatePanel(struct List *PhoneList,struct PhoneEntry *Entry)
{
struct Window *PanelWindow;
struct Gadget *GadgetList;
struct Gadget *GadgetArray[GAD_IMPORT + 1 + 2];
if(CreateAllGadgets(Entry,&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
{
if(PanelWindow = OpenWindowTags(NULL,
WA_Left, (Screen -> Width - WIDTH) >> 1,
WA_Top, (Screen -> Height - HEIGHT) >> 1,
WA_Width, WIDTH,
WA_Height, HEIGHT,
WA_Activate, TRUE,
WA_DragBar, TRUE,
WA_DepthGadget, TRUE,
WA_RMBTrap, TRUE,
WA_DepthGadget, TRUE,
WA_CloseGadget, TRUE,
WA_CustomScreen,Screen,
WA_IDCMP, IDCMP_GADGETDOWN | IDCMP_ACTIVEWINDOW | IDCMP_CLOSEWINDOW | IDCMP_VANILLAKEY | BUTTONIDCMP | INTEGERIDCMP | SLIDERIDCMP | LISTVIEWIDCMP,
WA_Title, LocaleString(MSG_RATEPANEL_RATES_PREFERENCES_TXT),
TAG_DONE))
{
struct IntuiMessage *Massage;
ULONG Class,Code;
struct Gadget *Gadget;
BYTE Terminated = FALSE;
LONG Selected = ~0,Count = 0;
struct TimeDateNode *TimeDateNode,*NewNode;
TimeDateNode = (struct TimeDateNode *)Entry -> TimeDateList . mlh_Head;
while(TimeDateNode -> VanillaNode . ln_Succ)
{
Count++;
TimeDateNode = (struct TimeDateNode *)TimeDateNode -> VanillaNode . ln_Succ;
}
PushWindow(PanelWindow);
AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
GT_RefreshWindow(PanelWindow,NULL);
ActiveGadget = NULL;
while(!Terminated)
{
WaitPort(PanelWindow -> UserPort);
while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
{
Class = Massage -> Class;
Code = Massage -> Code;
Gadget = (struct Gadget *)Massage -> IAddress;
GT_ReplyIMsg(Massage);
if(Class == IDCMP_VANILLAKEY)
KeySelect(GadgetArray,GAD_IMPORT,Code,PanelWindow,&Gadget,&Class,&Code);
if(Class == IDCMP_GADGETDOWN)
{
if((Gadget -> GadgetType & GTYP_GTYPEMASK) == GTYP_STRGADGET)
ActiveGadget = Gadget;
}
if(Class == IDCMP_ACTIVEWINDOW && ActiveGadget)
ActivateGadget(ActiveGadget,PanelWindow,NULL);
if(Class == IDCMP_CLOSEWINDOW)
Terminated = TRUE;
if(Class == IDCMP_MOUSEMOVE)
{
switch(Gadget -> GadgetID)
{
case GAD_START1:TimeDateNode -> TimeDate . TimeOfDay[0] = Code;
break;
case GAD_START2:TimeDateNode -> TimeDate . TimeOfDay[1] = Code;
break;
}
}
if(Class == IDCMP_GADGETUP)
{
switch(Gadget -> GadgetID)
{
case GAD_PAY1: TimeDateNode -> TimeDate . PayPerUnit[0] = GT_INTEGER(Gadget);
break;
case GAD_PAY2: TimeDateNode -> TimeDate . PayPerUnit[1] = GT_INTEGER(Gadget);
break;
case GAD_MINUTES1:
TimeDateNode -> TimeDate . SecPerUnit[0] = GT_INTEGER(Gadget);
break;
case GAD_MINUTES2:
TimeDateNode -> TimeDate . SecPerUnit[1] = GT_INTEGER(Gadget);
break;
case GAD_START1:TimeDateNode -> TimeDate . TimeOfDay[0] = Code;
break;
case GAD_START2:TimeDateNode -> TimeDate . TimeOfDay[1] = Code;
break;
case GAD_LIST: Selected = Code;
DisableGadgets(GadgetArray,PanelWindow,FALSE);
TimeDateNode = (struct TimeDateNode *)GetNode((struct List *)&Entry -> TimeDateList,Selected);
GT_SetGadgetAttrs(GadgetArray[GAD_PAY1],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . PayPerUnit[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES1],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . SecPerUnit[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START1],PanelWindow,NULL,
GTSL_Level, TimeDateNode -> TimeDate . TimeOfDay[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_PAY2],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . PayPerUnit[1],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES2],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . SecPerUnit[1],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START2],PanelWindow,NULL,
GTSL_Level, TimeDateNode -> TimeDate . TimeOfDay[1],
TAG_DONE);
if(Selected)
{
GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_CLONE],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_REMOVE],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
}
else
{
GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_CLONE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_REMOVE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
}
break;
case GAD_IMPORT:BlockWindow(PanelWindow);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, ~0,
TAG_DONE);
ImportPanel(Entry,PhoneList);
DisableGadgets(GadgetArray,PanelWindow,TRUE);
GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_CLONE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_REMOVE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, ~0,
TAG_DONE);
ActiveGadget = NULL;
ReleaseWindow(PanelWindow);
break;
case GAD_ADDDAY:
case GAD_ADDDATE:
BlockWindow(PanelWindow);
if(NewNode = CreateTimeDateNode(0,1,""))
{
APTR OldActiveGadget = ActiveGadget;
BYTE Result;
if(Gadget -> GadgetID == GAD_ADDDAY)
{
NewNode -> TimeDate . Month = -1;
NewNode -> TimeDate . Day = 0;
Result = DayPanel(&NewNode -> TimeDate);
}
else
Result = DatePanel(&NewNode -> TimeDate);
if(Result)
{
AdaptTimeDateNode(NewNode);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, ~0,
TAG_DONE);
AddTail((struct List *)&Entry -> TimeDateList,&NewNode -> VanillaNode);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, Count++,
TAG_DONE);
TimeDateNode = NewNode;
Redisplay: DisableGadgets(GadgetArray,PanelWindow,FALSE);
GT_SetGadgetAttrs(GadgetArray[GAD_PAY1],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . PayPerUnit[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES1],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . SecPerUnit[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START1],PanelWindow,NULL,
GTSL_Level, TimeDateNode -> TimeDate . TimeOfDay[0],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_PAY2],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . PayPerUnit[1],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_MINUTES2],PanelWindow,NULL,
GTIN_Number, TimeDateNode -> TimeDate . SecPerUnit[1],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_START2],PanelWindow,NULL,
GTSL_Level, TimeDateNode -> TimeDate . TimeOfDay[1],
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_CLONE],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_REMOVE],PanelWindow,NULL,
GA_Disabled, FALSE,
TAG_DONE);
ActivateGadget(GadgetArray[GAD_PAY1],PanelWindow,NULL);
ActiveGadget = GadgetArray[GAD_PAY1];
}
else
{
FreeVec(NewNode);
if(ActiveGadget = OldActiveGadget)
ActivateGadget(OldActiveGadget,PanelWindow,NULL);
}
}
ReleaseWindow(PanelWindow);
break;
case GAD_REMOVE:if(--Count)
{
if(TimeDateNode -> VanillaNode . ln_Succ -> ln_Succ)
NewNode = (struct TimeDateNode *)TimeDateNode -> VanillaNode . ln_Succ;
else
NewNode = (struct TimeDateNode *)TimeDateNode -> VanillaNode . ln_Pred;
}
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, ~0,
TAG_DONE);
Remove(TimeDateNode);
FreeVec(TimeDateNode);
if(Count > 1)
{
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, Count,
TAG_DONE);
TimeDateNode = NewNode;
goto Redisplay;
}
else
{
DisableGadgets(GadgetArray,PanelWindow,TRUE);
GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_CLONE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_REMOVE],PanelWindow,NULL,
GA_Disabled, TRUE,
TAG_DONE);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, ~0,
TAG_DONE);
ActiveGadget = NULL;
}
break;
case GAD_CLONE: if(NewNode = CreateTimeDateNode(0,1,""))
{
CopyMem(TimeDateNode,NewNode,sizeof(struct TimeDateNode));
NewNode -> VanillaNode . ln_Name = NewNode -> Buffer;
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, ~0,
TAG_DONE);
AddTail((struct List *)&Entry -> TimeDateList,&NewNode -> VanillaNode);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, Count++,
TAG_DONE);
TimeDateNode = NewNode;
goto Redisplay;
}
break;
case GAD_EDIT: GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, ~0,
TAG_DONE);
BlockWindow(PanelWindow);
{
struct Gadget *OldActiveGadget = ActiveGadget;
if(TimeDateNode -> TimeDate . Month == -1)
DayPanel(&TimeDateNode -> TimeDate);
else
DatePanel(&TimeDateNode -> TimeDate);
AdaptTimeDateNode(TimeDateNode);
GT_SetGadgetAttrs(GadgetArray[GAD_LIST],PanelWindow,NULL,
GTLV_Labels, &Entry -> TimeDateList,
GTLV_Selected, Selected,
TAG_DONE);
if(ActiveGadget = OldActiveGadget)
ActivateGadget(OldActiveGadget,PanelWindow,NULL);
}
ReleaseWindow(PanelWindow);
break;
default: break;
}
}
}
}
RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
PopWindow();
CloseWindow(PanelWindow);
}
FreeGadgets(GadgetList);
}
}